Various storage devices utilizing a storage tiering technique have recently been developed. The storage tiering technique ties together the physical storage areas (hereinafter, referred to as physical volumes) of various types of storage devices of different performances. As a result, the storage tiering technique constructs at least one virtual storage area (hereinafter, referred to as a logical volume) including a plurality of physical volumes as entities. Logical volumes can be recognized by a host computer, and are provided thereto. The storage tiering technique further determines a storage device that should store data, in accordance with a data characteristic, such as an access frequency. Namely, in the storage tiering technique, data is stored in a plurality of storage devices in a tiered manner. In the storage tiering technique, a set of storage devices (physical volumes) of the same type is called “a tier.” In general, storage devices of higher performances are allocated to a higher-tier. A storage system utilizing the storage tiering technique is called a tiered storage system.
In the tiered storage system, when data of, for example, a high access frequency is to be stored in the logical volume, a storage controller generally stores the data in the physical volume of a storage device of a higher performance (i.e., of a higher tier) among physical volumes associated with the logical volume. Further, a data characteristic, such as the access frequency, changes over time. In accordance with a change in the data characteristic, the storage controller changes a data storage destination. Namely, the storage controller transfers/rearranges data between physical volumes (tiers) in accordance with a change in the data characteristic.
In general, data that is accessed frequently or is required to have high responsiveness is only part of the data stored in a storage device. In view of the fact that a high-performance storage device is high in unit price per unit storage capacity, it is not preferable to store all data in a high-performance storage device. Therefore, in the tiered storage system, the storage controller stores data of a high access frequency in a storage device (of an upper tier) excellent in access performance, such as a flash storage device. Further, the storage controller stores data of a low access frequency in an inexpensive storage device (of a lower tier), such as a hard disk drive or a magnetic tape device. Since a greater part of the data is thus stored in the inexpensive storage device, the cost required for constructing a storage system can be reduced.
In the tiered storage system, when the characteristics of data have changed, the data is transferred between the tiers as mentioned above. For this data transfer, the storage controller collects a data characteristic, such as the access frequency, for each piece of data (more specifically, for each mass of data of a predetermined size). Based on the collected data characteristic, the storage controller determines data to be changed in the tier of its storage destination at, for example, regular intervals T. The storage controller transfers the thus-determined data.
However, if the time interval T is set relatively long, it is difficult to quickly transfer data whose characteristics have changed. In contrast, if the time interval T is set relatively short, data transfer is performed frequently. In this case, regardless of whether data is transferred from the lower tier to the upper tier or vice versa, the number of times of data input/output between storage devices (hereinafter, referred to as data transfer input/output) increases. Increase in the number of times of data transfer input/output will involve degradation of input/output performance in normal data access. Further, if concentration of access to data transferred to the upper tier is just temporary, it is desirable to transfer the data to the lower tier after, for example, the frequency of access to the data decreases. At this time, however, data transfer input/output will occur as a result.
As described above, in the conventional tiered storage system, there is a trade-off between “suppression of data transfer between tiers” and “maintaining of input/output performance (suppression of data access to the lower tier).”
A conventional cache technique is known as a method of increasing the speed of access to a low-speed storage device. A cache technique of utilizing part of the storage area of a high-speed storage device as a cache for a low-speed storage device is also known. In this technique, data stored in the cache can be maintained in its input/output performance without data transfer between tiers.
Assume here that the conventional, cache technique is applied to the conventional tiered storage system, and that data of the lower tier is stored in the cache. In this case, access of data to the lower tier can be suppressed. However, it is difficult to suppress a data transfer input/output that occurs when data is transferred to the upper tier by a tiered storage function.
Further, in the conventional techniques, data is stored in a cache, regardless of to which tier data access is performed. Accordingly, the cache contains both upper tier data and lower tier data. In particular, in the cache, the ratio of the data of the higher tier is high. This is because access to the data of the higher tier is generally higher in frequency. This means that the area for caching data of the lower tier is reduced, which results in increase in data access to the lower tier.
It is an object of the invention to provide a tiered storage system and a storage controller capable of maintaining an input/output performance with physical data transfers between tiers suppressed, and a method of substituting a data transfer between the tiers.